SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [paAgregarDivisionAAbrir]

@reestructura INT,
@suborganizacion INT,
@descripcion VARCHAR(50),
@esgrupo VARCHAR(1), 
@curso VARCHAR(2),
@division VARCHAR(7),
@grupocarreras INT,
@turno INT,
@fechaalta VARCHAR(10),
@baja VARCHAR(1),
@fechabaja VARCHAR(10)

AS

-- Validacion de los datos de entrada...

IF LEN(@fechabaja) = 0 
	SELECT @fechabaja = Null

DECLARE @Error INT
SET @Error = 0
DECLARE @IdDivision INT

DECLARE @Estado INT
SELECT @Estado = (SELECT Estado FROM tb_Reestructuras WHERE IdReestructura = @reestructura)

BEGIN TRANSACTION

IF @Estado NOT IN(15, 16, 18) BEGIN
	INSERT tb_DivisionesAAbrir SELECT @reestructura, @suborganizacion, @descripcion, @esgrupo, @curso, @division, @grupocarreras, @turno, @fechaalta, @baja, @fechabaja, null, null, null, null, null
	SELECT @IdDivision = @@IDENTITY
	SELECT @Error = @@Error
	IF @Error <> 0 GOTO Salir

	-- DEBO GENERAR LAS PLAZAS CORRESPONDIENTES POR EL PLAN DE ESTUDIO
	-- El Cargo salarial se saca en base al Nivel de la subroganzacion. Por defecto es 3001
	-- Nivel // CargoSalarial
	-- 3 // 2901
	-- 11 // 6001
	-- 4 // 3001
	-- 5 // 4001	

	INSERT tb_AperturasDeReestructura
		SELECT '', DA.Reestructura, O.IdOrganizaciones, SO.Idsuborganizacion, 5005, A.IdAsignatura, Null, DA.IdDivision, T.IdTurno, DA.FechaAlta, 1, EC.Horas, Null, 'N', Null, Null, 1, 12, 2, 1, 12, 12, 13, 12, 0, 12, 
		CASE SO.Nivel WHEN 3 THEN 2901 WHEN 11 THEN 6001 WHEN 4 THEN 3001 WHEN 5 THEN 4001 ELSE 3001 END, Null, Null, Null, Null, 12, Null
		FROM tb_DivisionesAAbrir DA
		INNER JOIN tb_Suborganizaciones SO ON DA.Suborganizacion = SO.IdSuborganizacion
		INNER JOIN tb_Organizaciones O ON O.IdOrganizaciones = SO.Org	
		INNER JOIN tb_GrupoDeCarreras GC ON GC.IdGrupoCarrera = DA.GrupoCarreras
		INNER JOIN tb_Turnos T ON T.IdTurno = DA.Turno
		INNER JOIN tb_RelGrupoCarrera_Carrera R ON R.IdGrupoCarrera = GC.IdGrupoCarrera
		INNER JOIN tb_Carreras C ON C.IdCarrera = R.IdCarrera
		INNER JOIN tb_EspaciosCurriculares EC ON EC.Carrera = C.IdCarrera AND DA.Curso = EC.Curso
		INNER JOIN tb_Asignaturas A ON A.IdAsignatura = EC.Asignatura
		WHERE RTRIM(LTRIM(DA.Curso)) IN('1','2','3','4','5','6','7','8','9') AND DA.IdDivision = @IdDivision
	SELECT @Error = @@Error

END

Salir:
IF @Error = 0 
	COMMIT TRANSACTION
ELSE
	ROLLBACK TRANSACTION 












GO
GRANT EXECUTE ON  [dbo].[paAgregarDivisionAAbrir] TO [Reestructura]
GO
